// 导入axios
import axios from 'axios';
// 定义一个变量，记录公共的前缀，baseURL
const baseURL = '/api';
import { message } from 'ant-design-vue';
import router from '@/router';
// 创建请求内容
const instance = axios.create({ baseURL });

import { UserTokenStore } from '@/stores/userToken';
// 添加请求拦截器
instance.interceptors.request.use(
    (config) => {
        // 可以在这里添加其他请求头或配置
        const tokenStore = UserTokenStore();
        if (tokenStore.getToken() != null) {
            config.headers.Authorization = tokenStore.getToken()
        }
        return config;
    },
    err => {
        message.error("服务异常");
        return Promise.reject(err);
    }
);

// 添加响应拦截器，检查返回信息是否错误
instance.interceptors.response.use(
    result => {
        return result.data; // 返回成功的响应数据
    },
    err => {
        if (err.response && err.response.status === 401) {
            message.error("请先登录");
            router.push("/sign");
        } else {
            message.error("服务异常");
        }
        return Promise.reject(err); // 异步的状态转化成失败的状态
    }
);

export default instance;
